home *** CD-ROM | disk | FTP | other *** search
- #include <exec/exec.h>
- #include <exec/semaphores.h>
- #include <proto/exec.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include <proto/exec.h>
-
- #include "work:romconf/doorheader.h"
- #include "dh0:code/aztec/glue.h"
- #define sm sendmessage
-
- void LastCommand(void);
- void end(void);
-
- struct SinglePort
- {
- struct SignalSemaphore semi;
- struct MinList sl_List;
- APTR *s;
- UBYTE SemiName[20];
- int Status;
- char Handle[31];
- char Location[31];
- char Misc1[100];
- char Misc2[100];
- } ;
- struct NodeStat
- {
- char Status;
- char info;
- };
- struct NodeInfo
- {
- char Handle[31];
- ULONG StartTime;
- int ChatColor;
- int Channel;
- int Private;
- struct NodeStat Stats[10];
- APTR *t;
- APTR *s;
- unsigned long tasksignal;
- };
- APTR Singles[10];
- struct MultiPort
- {
- struct SignalSemaphore semi;
- struct MinList sl_List;
- struct NodeInfo MyNode[10];
- UBYTE SemiName[20];
- } *Nodes;
-
- char SingleName[] = "AEStat ";
- void main(int argc,char *argv[])
- {
- char FileName[100], mes[100],mes2[100],mes1[100];
- char Name[100],Location[100];
- struct SinglePort *s;
- int status;
- int i=0;
-
- if(argc!=2)
- {
- printf("InfoNode v2.3a, written by the /X Developement Team\n");
- printf("This is a XIM for AmiExpress 2.30+\n");
- printf("\n");
- exit(0);
- }
- Register(argv[1][0]-'0');
- getuserstring(mes,BB_TASKPRI);
- SetTaskPri(FindTask(0),atol(mes));
- Nodes=(struct MultiPort *)GetSemaphore();
- ObtainSemaphore((struct SignalSemaphore *)Nodes);
- for(i=0;i<9;i++) Singles[i]=Nodes->MyNode[i].s;
- ReleaseSemaphore((struct SignalSemaphore *)Nodes);
- sm("",1);
- sm("",1);
- sm(".---+----------------------+---------------------------+----------------------.",1);
-
- sm("|Nd#| Name/Handle | Location ",0);
- sm(" | Action |",1);
- sm(")---+----------------------+---------------------------+----------------------(",1);
- i=0;
- while(i<9)
- {
-
- ObtainSemaphore((struct SignalSemaphore *)Singles[i]);
- s=(struct SinglePort *)Singles[i];
- status=s->Status;
- strcpy(Name,s->Handle);
- strcpy(Location,s->Location);
- strcpy(FileName,s->Misc1);
- ReleaseSemaphore((struct SignalSemaphore *)Singles[i]);
- switch(status)
- {
- case 0: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","IDLE"); break;
- case 1: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);
- if(FileName[0]!='\0')
- sprintf(mes1," DL: %-16.16s |",FileName);
- else
- sprintf(mes1," %-20.20s |","BEGINNING DL"); break;
- case 2: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);
- if(FileName[0]!='\0')
- sprintf(mes1," UL: %-16.16s |",FileName);
- else sprintf(mes1," %-20.20s |","BEGINNING UL"); break;
- case 3: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);
- if(i==argv[1][0]-'0')
- sprintf(mes1," %-20.20s |","InfoNode v2.3a"); else
- sprintf(mes1," %-20.20s |","MODULE"); break;
- case 4: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","READING MAIL"); break;
- case 5: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","REVIEWING STATS"); break;
- case 6: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","ACCOUNT EDITING"); break;
- case 7: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","ZOOMING"); break;
- case 8: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","VIEWING DIRS"); break;
- case 9: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","READING BULLS"); break;
- case 10: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","VIEWING FILES"); break;
- case 11: sprintf(mes, "| %-20.20s | %-25.25s |","","");sprintf(mes1," %-20.20s |","ACCOUNT SEQUENCE"); break;
- case 12: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","LOGGING OFF"); break;
- case 13: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","SYSOPING"); break;
- case 14: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","USING SHELL"); break;
- case 15: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","EDITING");break;
- case 16: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","JOINING CONF");break;
- case 17: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","CHATTING");break;
- case 18: sprintf(mes, "| %-20.20s | %-25.25s |","","");sprintf(mes1," %-20.20s |","NODE INACTIVE.");break;
- case 19: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","REQUESTING CHAT");break;
- case 20: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","CONNECTING");break;
- case 21: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","LOGGING ON");break;
- case 22: sprintf(mes, "| %-20.20s | %-25.25s |","","");sprintf(mes1," %-20.20s |","AWAITING CONNECT");break;
- case 23: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","SCANNING MAIL");break;
- case 24: sprintf(mes, "| %-20.20s | %-25.25s |","","");sprintf(mes1," %-20.20s |","SHUTDOWN");break;
- case 25: sprintf(mes, "| %-20.20s | %-25.25s |",Name,Location);sprintf(mes1," %-20.20s |","MULTICHAT");break;
- case 26: sprintf(mes, "| %-20.20s | %-25.25s |","","");sprintf(mes1," %-20.20s |","SUSPENDED");break;
- case 27: sprintf(mes, "| %-20.20s | %-25.25s |","","");sprintf(mes1," %-20.20s |","RESERVED");break;
- case -1: sprintf(mes, "| %-20.20s | %-25.25s |","","");sprintf(mes1," %-20.20s |","UNAVAILABLE");break;
- default: sprintf(mes, "| %-20.20s | %-25.25s |","","");sprintf(mes1," %-20.20s |","");break;
-
- }
- sprintf(mes2,"| %d ",i);
- if(status!=27 && status>=0 && status!=24 && status!=18)
- {
- sm(mes2,0); sm(mes,0); sm(mes1,1);
- sm("|---+----------------------+---------------------------+----------------------|",1);
-
- }
- i++;
- }
- sm("`---------------------------------------------------------InfoNode-v2.3a------'",1);
-
- // sm("`--------InfoNode-v2.3a-------------Special Release for-UnLawful Entry--------'",1);
-
- ShutDown();
- end();
- }
-
- void LastCommand(void)
- {
- sm("",1);
- }
- void end(void)
- {
- exit(0);
- }